Obey the GNU General Public License (GPL) version 2 or higher (your choice).

Install JDK 1.5 or higher.

Make a subclass of codesimian\CS.java.
You probably want to extend codesimian\DefaultCS.java, which is a subclass of CS.

Add 1 line to codesimian\CSFactory.java telling CodeSimian that your new class exists.
CSFactory.add( new YourNewClass() );

Use your new class in CodeSimian code as the String returned by your
new class's keyword() and/or name() functions. Example: the Add class is used by the
keyword "+" or by whatever name you give the plus: In +#pl(2 3 4) the plus's name is "pl".
Your class will be automatically instantiated by its newInstance() function when CodeSimian code uses your class.
Its only instantiated by its constructor once in CSFactory.java
and by other hard-coded .java files.


--------------------------------------------------------------------------------------------------

In a later version, CSFactory will be replaced by a DEFAULT LIST, and this code would work:
codesimian.Static.defaultListOfCSs().addP( new YourNewClass().addP(someCS,anOtherCS,CSparameters...) )
It would also allow adding new default types from within CodeSimian code.

12/06 codesimian.Static.defaultListOfCSs does work, but its just a runtime copy of CSFactory.
However the compiler still uses CSFactory. It needs to be updated.

Currently, at runtime, you can only add new types into a local list but not the default list,
but you can of course add anything at compile-time. I'm trying to remove compile-time completely
so that all changes to CodeSimian.jar are made from inside an executing CodeSimian.jar
and you click the SAVE button and save a new updated CodeSimian.jar.